package com.naiterui.ehp.bs.search.service;

import java.util.List;

import com.naiterui.common.repository.page.PageVO;
import com.naiterui.ehp.bp.bo.statistics.AsConsultRecordBO;
import com.naiterui.ehp.bp.bo.statistics.AsOrderRecordBO;
import com.naiterui.ehp.bp.bo.statistics.AsProductRecordBO;
import com.naiterui.ehp.bp.bo.statistics.AsRecipelRecordBO;
import com.naiterui.ehp.bp.support.exception.BusinessException;

/**
 * 统计报表
 *
 * @author yangfuya
 * @since 2022/2/10
 */
public interface IStatisticsService {

    /**
     * 创建经纪人数据统计-问诊相关记录
     *
     * @param consultRecordBO
     */
    void createConsultRecordIndex(AsConsultRecordBO consultRecordBO);

    /**
     * 查询昨日经纪人数据统计-问诊相关记录
     * 
     * @return
     * @throws BusinessException
     */
    List<AsConsultRecordBO> findConsultRecordIndex(String yesterday) throws BusinessException;

    /**
     * 创建经纪人数据统计-药品售卖相关记录
     *
     * @param productRecordBO
     */
    void createProductRecordIndex(AsProductRecordBO productRecordBO);

    /**
     * 查询昨日经纪人数据统计-药品售卖相关记录
     *
     * @return
     * @throws BusinessException
     */
    List<AsProductRecordBO> findProductRecordIndex(String yesterday) throws BusinessException;

    /**
     * 创建经纪人数据统计-订单相关记录
     *
     * @param orderRecordBO
     */
    void createOrderRecordIndex(AsOrderRecordBO orderRecordBO);

    /**
     * 查询昨日经纪人数据统计-订单相关记录
     *
     * @return
     * @throws BusinessException
     */
    List<AsOrderRecordBO> findOrderRecordIndex(String yesterday) throws BusinessException;

    /**
     * 创建经纪人数据统计-处方相关记录
     *
     * @param recipelRecordBO
     */
    void createRecipelRecordIndex(AsRecipelRecordBO recipelRecordBO);

    /**
     * 查询昨日经纪人数据统计-处方相关记录
     *
     * @return
     * @throws BusinessException
     */
    List<AsRecipelRecordBO> findRecipelRecordIndex(String yesterday) throws BusinessException;

    /**
     * 修改经纪人数据统计-处方记录
     *
     * @param recipelId
     *            处方id
     */
    void updateRecipelRecordIndex(Long recipelId) throws BusinessException;

    /**
     * 分页获取订单
     * 
     * @param doctorId
     * @param orderSn
     * @return
     * @throws BusinessException
     */
    PageVO<AsOrderRecordBO> findOrderPage(Long doctorId, String orderSn, int pageNo, int pageSize)
        throws BusinessException;
}